
use "$path\Intermediary Data\localshock_dataforReg_SP95_v2.dta",clear


drop if prix_ht==.
drop  j j3
xtset id daten
gen d_gasolinerott=ln(gasoline_rotterdam_euro)-ln(l1.gasoline_rotterdam_euro)
drop gasoline_rotterdam_euro  

drop d_gasoliner
gen d_gasoliner=d_gasolinerott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y_sp95"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_sp95_forinteractkurtfreq"
keep if _m==3
drop _m

******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.




***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_gasoliner##c.ratio c.local_shock10##c.ratio c.m_dprix##c.ratio c.l.d_gasoliner##c.ratio c.l2.d_gasoliner##c.ratio c.l3.d_gasoliner##c.ratio c.l4.d_gasoliner##c.ratio ///
c.l5.d_gasoliner##c.ratio ///
		c.l.local_shock10##c.ratio c.l2.local_shock10##c.ratio c.l3.local_shock10##c.ratio c.l4.local_shock10##c.ratio c.l5.local_shock10##c.ratio ///
	c.l.m_dprix##c.ratio  c.l2.m_dprix##c.ratio c.l3.m_dprix##c.ratio c.l4.m_dprix##c.ratio c.l5.m_dprix##c.ratio, absorb(id) vce(cluster daten)

	

	replace r2=e(r2)
replace r2_a=e(r2_a)

matrix test=r(table)
replace coeff1_reg=_b[d_gasoliner] if num_obs==`i'
replace coeff2_reg=_b[c.d_gasoliner#c.ratio] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_gasoliner] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_gasoliner#c.ratio] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg r2 r2_a  se_coeff1_reg se_coeff2_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table2_sp95_col1.dta", replace
restore
}





***** NON CONTRAINTES kur et freq ****


capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.


***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_gasoliner##(c.freq_demean c.kur_demean) c.local_shock10##(c.freq_demean c.kur_demean) c.m_dprix##(c.freq_demean c.kur_demean) c.l.d_gasoliner##(c.freq_demean c.kur_demean) ///
 c.l2.d_gasoliner##(c.freq_demean c.kur_demean) c.l3.d_gasoliner##(c.freq_demean c.kur_demean) c.l4.d_gasoliner##(c.freq_demean c.kur_demean) c.l5.d_gasoliner##(c.freq_demean c.kur_demean) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean)  c.l2.local_shock10##(c.freq_demean c.kur_demean) c.l3.local_shock10##(c.freq_demean c.kur_demean) c.l4.local_shock10##(c.freq_demean c.kur_demean) ///
		c.l5.local_shock10##(c.freq_demean c.kur_demean)	c.l.m_dprix##(c.freq_demean c.kur_demean)  c.l2.m_dprix##(c.freq_demean c.kur_demean) c.l3.m_dprix##(c.freq_demean c.kur_demean) ///
		c.l4.m_dprix##(c.freq_demean c.kur_demean) c.l5.m_dprix##(c.freq_demean c.kur_demean), absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_gasoliner] if num_obs==`i'
replace coeff2_reg=_b[c.d_gasoliner#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_gasoliner#c.kur_demean] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_gasoliner] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_gasoliner#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_gasoliner#c.kur_demean] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
preserve
keep coeff1_reg coeff2_reg coeff3_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table2_sp95_col2.dta", replace
restore
}



***** Format Table 2 SP 95
clear
use "$path\Graphs_Tables\R&R\Table2_sp95_col1.dta"
append using "$path\Graphs_Tables\R&R\Table2_sp95_col2.dta"


gen id_col=_n

xpose, clear

drop if _n==1


capture drop col1
capture drop col2


gen col1=.
replace col1=v1[1] if _n==1
replace col1=v1[3] if _n==2
replace col1=v1[2] if _n==3
replace col1=v1[4] if _n==4
replace col1=v1[6] if _n==9

capture drop col2
gen col2=.
replace col2=v2[1] if _n==1
replace col2=v2[3] if _n==2
replace col2=v2[2] if _n==5
replace col2=v2[4] if _n==6
replace col2=v2[10] if _n==7
replace col2=v2[11] if _n==8
replace col2=v2[6] if _n==9


drop v1 v2 


gen Var=""
replace Var="Shock" if _n==1
replace Var="Shock x Ratio (Kur./Freq.)" if _n==3
replace Var="Shock x Frequency" if _n==5
replace Var="Shock x Kurtosis" if _n==7
replace Var="R2" if _n==9



gen tstatcol1=.
gen tstatcol2=.




foreach i in 1 3 5 7 9  {
replace tstatcol1=col1[`i']/col1[`i'+1] if _n==`i'
replace tstatcol2=col2[`i']/col2[`i'+1] if _n==`i'

}

gen starscol1=""
gen starscol2=""



foreach i in 1 2 {
replace starscol`i'="***" if abs(tstatcol`i')>=2.58 & tstatcol`i'!=.
replace starscol`i'="**" if abs(tstatcol`i')<2.58 & abs(tstatcol`i')>=1.96 & tstatcol`i'!=.
replace starscol`i'="*" if abs(tstatcol`i')<1.96 & abs(tstatcol`i')>=1.64 & tstatcol`i'!=.
}

drop tstat*
rename col* coltemp*

foreach i in 1 2  {
replace coltemp`i'=round(coltemp`i', 0.001)
tostring coltemp`i', gen(coltempbis`i') force format("%9.3f")  
egen col`i'=concat(coltempbis`i' starscol`i')
}


rename col1 Constrained
rename col2 Unconstrained

keep  Var Constrained Unconstrained 
order Var Constrained Unconstrained 
drop if _n>9
save "$path\Graphs_Tables\TableE2_SP95_Edited.dta", replace
